【MySQL】GROUP BY - データのグループ化
MySQLのGROUP BYについて解説します。
検証環境
GROUP BY
GROUP BY句は“SELECT文の取得データを任意カラムでグループ化する句”です。
任意カラムが同じ値のレコードをグループ化し、関数を使って合計値などを表データとしてまとめることができます。
基本構文
GROUP BY カラム
カラム
の部分にグループ化するカラムを記述します。
サンプル
mysql> SELECT * FROM items;
+----+-----------+-------+-------+
| id | name | price | stock |
+----+-----------+-------+-------+
| 1 | Apple | 200 | 10 |
| 2 | Orange | 150 | 3 |
| 3 | Apple | 300 | 5 |
| 4 | Pineapple | 1100 | 1 |
| 5 | Grapes | 3500 | 1 |
| 6 | Pineapple | 2000 | 3 |
+----+-----------+-------+-------+
6 rows in set (0.00 sec)
___ih_hl_start
mysql> SELECT name, SUM(stock) FROM items GROUP BY name;
___ih_hl_end
+-----------+------------+
| name | SUM(stock) |
+-----------+------------+
| Apple | 15 |
| Orange | 3 |
| Pineapple | 4 |
| Grapes | 1 |
+-----------+------------+
4 rows in set (0.00 sec)
14行目のGROUP BY name
がGROUP BY句です。
name
カラムでグループ化し、SUM
関数によってstock
の合計値を計算しています。